package com.dp.server.entities;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.PrePersist;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import org.hibernate.annotations.GenericGenerator;
import org.hibernate.envers.Audited;

import com.dp.client.dto.ClienteDTO;

@Entity
public class Cliente {
	private int id;
	private String nombre;
	private String apellido1;
	private String apellido2;
	private String correo;
	private Date fechaRegistro;
	private String password;
	private String usuario;
	private int perfilId;
	
	public int getPerfilId() {
		return perfilId;
	}
	public void setPerfilId(int perfilId) {
		this.perfilId = perfilId;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public String getUsuario() {
		return usuario;
	}
	public void setUsuario(String usuario) {
		this.usuario = usuario;
	}
	@Id
	@GeneratedValue(generator="increment")
	@GenericGenerator(name="increment", strategy = "increment")
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getNombre() {
		return nombre;
	}
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
	public String getApellido1() {
		return apellido1;
	}
	public void setApellido1(String apellido1) {
		this.apellido1 = apellido1;
	}
	public String getApellido2() {
		return apellido2;
	}
	public void setApellido2(String apellido2) {
		this.apellido2 = apellido2;
	}
	public String getCorreo() {
		return correo;
	}
	public void setCorreo(String correo) {
		this.correo = correo;
	}
	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "CLIENTE_DATE")
	public Date getFechaRegistro() {
		return fechaRegistro;
	}
	public void setFechaRegistro(Date fechaRegistro) {
		this.fechaRegistro = fechaRegistro;
	}
	
	public Cliente(){
		
	}
	public Cliente(ClienteDTO cliente){
		this.id = cliente.getId();
		this.apellido1 = cliente.getApellido1();
		this.apellido2 = cliente.getApellido2();
		this.correo = cliente.getCorreo();
		this.nombre = cliente.getNombre();
		this.fechaRegistro = cliente.getFechaRegistro();
		this.password = cliente.getPassword();
		this.usuario = cliente.getUsuario();
		this.perfilId = cliente.getPerfil().getId();
	}
	@PrePersist
	public void onCreate(){
		this.fechaRegistro = new Date();
	}
}
